4D Chart v13

Diagramme aus Datensätzen einer Datenbank (Beispiele)

Home

 
4D Chart v13
Diagramme aus Datensätzen einer Datenbank (Beispiele)

Diagramme aus Datensätzen einer Datenbank (Beispiele)  


 

 

Dieser Abschnitt zeigt Beispiele für zwei- und dreidimensionale Diagramme, die mit den Funktionen CT Chart selection und CT Chart data erstellt wurden.

Wie Sie zwei- und dreidimensionale Diagramme anhand von Arrays erstellen, erfahren Sie im Abschnitt Diagramme aus Arrays (Beispiele).

Jedes Beispiel enthält:

  • Eine Beschreibung der Ausgangssituation,
  • Die Struktur der Beispieldatenbank,
  • Ein Diagramm, das anhand der Beispieldaten komplett programmiert wurde,
  • Den Code zum Erstellen dieses Diagramms.

Nehmen wir an, Sie besitzen ein Software-Unternehmen mit Kunden in vielen verschiedenen Marktsektoren. Das Spektrum reicht von Endkunde über Firmenkunde bis hin zum Zwischenhändler. Ihre Datenbank überwacht Kunden und Verkäufe.

Dafür gibt es folgende Tabelle:

Mit 4D Chart erstellen Sie ein Tortendiagramm, das für jede Kundenart den Gesamtverkauf in Prozent angibt.

Dieses Diagramm wurde mit der Methode DIAGRAMM MARKTSEKTOR erstellt.

  `Methode: DIAGRAMM MARKTSEKTOR
  `Kategorien: Kundenart
  `Werte: AnzahlVerkauf
 
 C_LONGINT($Left;$Top;$Right;$Bottom)
 C_LONGINT($Bereich;$Chart;$Title;$Locate)
 C_LONGINT($Left2;$Top2;$Right2;$Bottom2)
 
  `Erstelle Auswahl der Datensätze für das Diagramm
 ALL RECORDS([Marktdaten])
 
  `Array der Felder für Datenreihe
 ARRAY LONGINT($aFields;1)
 $aFields{1}:=Field(->[Marktdaten]AnzahlVerkauf)
 
  `Oberflächenelemente ausblenden
 CT SET DISPLAY(Bereich;1;0) `Menüleiste ausblenden
 CT SET DISPLAY(Bereich;2;0) `Chart Toolbar ausblenden
 CT SET DISPLAY(Bereich;3;0) `Objekt Toolbar ausblenden
 CT SET DISPLAY(Bereich;6;0) `Rollbalken ausblenden
 
 CT SET DISPLAY(Bereich;9;0) `Lineal ausblenden
 
  `Erstelle Tortendiagramm
 $Chart:=CT Chart selection(Bereich;6;1;1;Table(->[Marktdaten]);2;$aFields)
 
  `Verschiebe Tortenstück #3 um 10 Grad
 CT EXPLODE PIE(Bereich;$Chart;2;10)
 
  `Setze Position der Legende (unten, horizontal)
 CT SET LEGEND ATTRIBUTES(Bereich;$Chart;1;0;0;0;8;0;0)
 
  `Füge links oben Titel hinzu
 $Title:=CT Draw text(Bereich;1;1;210;3;"Kundenverteilung nach Sektor")
 
  `Format des Titels (Palatino, 14 Punkt, Fett, Zentriert, Schwarz)
 $Color:=CT Index to color(16)
 $Font:=CT Font number("Palatino")
 CT SET TEXT ATTRIBUTES(Bereich;$Title;$Font;14;1;$Color;1)
 
  `Erhalte Größe des Bereichs zum Zentrieren
 CT GET AREA BOUNDARY(Bereich;1;$Left;$Top;$Right;$Bottom)
 
  `Passe Diagramm an die Fenstergröße minus 50 Punkt an
 CT SIZE(Bereich;$Chart;$Right-50;$Bottom-50)
 
  `Zentriere Diagramm
 CT GET BOUNDARY(Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Bereich;$Chart;$Locate;$Top2)
 
  `Zentriere Titel
 CT GET BOUNDARY(Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Bereich;$Title;$Locate;$Top2)
 
  `Bewege Diagramm 9 Punkt nach unten
 CT GET BOUNDARY(Bereich;$Chart;$Left;$Top;$Right;$Bottom)
 CT MOVE(Bereich;$Chart;$Left;$Top+9)
 
  `Alle Objekte abwählen
 CT SELECT(Bereich;-1;0)

Nehmen wir an, Sie analysieren den Markt für Neuwagen und verwenden eine Datenbank, um das beste Auto für Ihr Geld herauszufinden. Sie haben Ihre Suche auf fünf Autos konzentriert und möchten vergleichen, wieviel Kosten jedes Auto pro Jahr für Kfz-Steuer, Versicherung und Wartung verursacht.

Sie geben die Daten in folgende Tabelle ein:

Zum Analysieren stellen Sie die gesammelte Information in einem dreidimensionalen Diagramm dar.

Mit 4D Chart erstellen Sie folgendes Diagramm:

Dieses Diagramm wurde mit der Methode DIAGRAMM AUTOKOSTEN erstellt. Sie verwendet die Funktion CT Chart selection. Mit dieser Funktion übergeben Sie ein Array von Feldern. Die Namen der Felder werden die Namen der Reihen, ihre Werte werden auf der Werteachse gezeichnet. In diesem Beispiel wurden die Felder Steuer, Versicherung und Wartung für die Reihen und Werte verwendet.

Die Methode DIAGRAMM AUTOKOSTEN lautet:

  `Methode: DIAGRAMM AUTOKOSTEN
  `Kategorien: Autotyp
  `Reihen: Kostenart
  `Werte: Kosten in Euro
 
 C_LONGINT($Left;$Top;$Right;$Bottom)
 C_LONGINT($Area;$Chart;$Title;$Locate;$i)
 C_LONGINT($Left2;$Top2;$Right2;$Bottom2)
 
  `Erstelle Auswahl der Datensätze für das Diagramm
 ALL RECORDS([Autokosten])
 ORDER BY([Autokosten];[Autokosten]Kosten;>)
 
  `Array der Felder für Datenreihe
 ARRAY LONGINT($aFields;3)
 $aFields{1}:=Field(->[Autokosten]Steuer)
 $aFields{2}:=Field(->[Autokosten]Wartung)
 $aFields{3}:=Field(->[Autokosten]Versicherung)
 
  `Oberflächenelemente ausblenden
 CT SET DISPLAY(Bereich;1;0) `Menüleiste ausblenden
 CT SET DISPLAY(Bereich;2;0) `Diagrammwerkzeuge ausblenden
 CT SET DISPLAY(Bereich;3;0) `Objektwerkzeuge ausblenden
 CT SET DISPLAY(Bereich;6;0) `Rollbalken ausblenden
 CT SET DISPLAY(Bereich;9;0) `Lineal ausblenden
 
  ` Erstelle Diagramm mit 3D Säulen
 $Chart:=CT Chart selection(Bereich;100;1;1;Table(->[Autokosten]);1;$aFields)
 
  `Richte Skala ein
 CT SET REAL SCALE(Bereich;$Chart;0;0;0;0;0;3000;500;100)
 
  `Zeige Legende nicht an
 CT SET LEGEND ATTRIBUTES(Bereich;$Chart;0;0;-1;-1;0;0;0)
 
  `Füge Bezeichnung der Achsen hinzu
 CT SET TITLE ATTRIBUTES(Bereich;$Chart;0;3;0;"Autotyp")
 CT SET TITLE ATTRIBUTES(Bereich;$Chart;1;0;0;"") `Nicht zeigen
 CT SET TITLE ATTRIBUTES(Bereich;$Chart;2;2;3;"Kosten (in Euro)")
 
  `Füge links oben Diagrammtitel hinzu
 $Title:=CT Draw text(Bereich;1;1;300;3;"Jährliche Kosten für Sedan Import")
 
  `Format des Diagrammtitels (Palatino, 14 Punkt, Fett, Zentriert, Schwarz)
 $Color:=CT Index to color(16)
 $Font:=CT Font number("Palatino")
 CT SET TEXT ATTRIBUTES(Bereich;$Title;$Font;14;1;$Color;1)
 
  `Setze Farbe für 1. Reihe/grün ausfüllen
 $Color:=CT Index to color(10)
 CT SET CHART FILL ATTRIBUTES(Bereich;$Chart;8;100;3;$Color)
 
  `Setze Farbe für 2. Reihe/gelb ausfüllen
 $Color:=CT Index to color(2)
 CT SET CHART FILL ATTRIBUTES(Bereich;$Chart;8;200;3;$Color)
 
  `Setze Farbe für 3. Reihe/rot ausfüllen
 $Color:=CT Index to color(4)
 CT SET CHART FILL ATTRIBUTES(Bereich;$Chart;8;300;3;$Color)
 
  `Setze Füllfarbe für alle Rechtecke im Gitter
 $Color:=CT Index to color(8)
 For($i;1;3)
    CT SET CHART FILL ATTRIBUTES(Bereich;$Chart;1;$i;5;$Color)
 End for
 
  `Setze Texteigenschaften für Beschriftung (Palatino, 9 Punkt, Fett Kursiv)
 $Font:=CT Font number("Palatino")
 For($i;0;2)
    CT SET CHART TEXT ATTRIBUTES(Bereich;$Chart;4;$i;$Font;9;3;-1)
 End for
 
  `Setze Texteigenschaften für Titel (Palatino, 12 Punkt, Fett)
 $Font:=CT Font number("Palatino")
 For($i;0;2)
    CT SET CHART TEXT ATTRIBUTES(Bereich;$Chart;5;$i;$Font;14;1;-1)
 End for
 
  `Erhalte Größe des Bereichs zum Zentrieren
 CT GET AREA BOUNDARY(Bereich;1;$Left;$Top;$Right;$Bottom)
 
  `Passe Diagramm an die Fenstergröße minus 50 Punkt an
 CT SIZE(Bereich;$Chart;$Right-50;$Bottom-50)
 
  `Zentriere Diagramm
 CT GET BOUNDARY(Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Bereich;$Chart;$Locate;$Top2)
 
  `Zentriere Titel
 CT GET BOUNDARY(Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Bereich;$Title;$Locate;$Top2)
 
 Bewege Diagramm 9 Punkt nach unten
 CT GET BOUNDARY(Bereich;$Chart;$Left;$Top;$Right;$Bottom)
 CT MOVE(Bereich;$Chart;$Left;$Top+9)
 
  `Alle Objekte abwählen
 CT SELECT(Bereich;-1;0)

Nehmen wir an, Sie sind Leiter eines Ausbildungsprogramms für Bayern und möchten vergleichen, welche Testergebnisse die Auszubildenden in den einzelnen Bundesländern an verschiedenen Testtagen erzielen.

Ihre Datenbank enthält die Punktzahlen der Auszubildenden, sortiert nach Testdatum und Region.

Mit 4D Chart erstellen Sie folgendes Diagramm:

Dieses Diagramm wurde mit der Methode 2D DIAGRAMM PUNKTZAHL erstellt. Sie lautet:

  `Methode: 2D DIAGRAMM PUNKTZAHL
  `Kategorien: Testdatum
  `Reihen: Bundesland
  `Werte: Testergebnis
 
 C_LONGINT($Left;$Top;$Right;$Bottom)
 C_LONGINT($Left2;$Top2;$Right2;$Bottom2)
 C_LONGINT($Area;$Chart;$Title;$Locate;$Score;$Color;$Font;$Rect)
 
 ALL RECORDS([Testergebnisse])
 ORDER BY([Testergebnisse];[Testergebnisse]Testdatum;>)
  `Oberflächenelemente ausblenden
 CT SET DISPLAY(Bereich;1;0) `Menüleiste ausblenden
 CT SET DISPLAY(Bereich;2;0) `Diagrammwerkzeuge ausblenden
 CT SET DISPLAY(Bereich;3;0) `Objektwerkzeuge ausblenden
 CT SET DISPLAY(Bereich;6;0) `Rollbalken ausblenden
 CT SET DISPLAY(Bereich;9;0) `Lineal ausblenden
  `Erstelle zweidimensionales Diagramm
 $Chart:=CT Chart data(Bereich;2;1;1;1;Table(->[Testergebnisse]);2;4;3)
 
  `Erstelle Diagramm im Querformat
 ARRAY LONGINT($aOptions;4)
 $aOptions{1}:=1 `Ausrichtung: horizontal
 $aOptions{2}:=0 `Gestapelt: normal
 $aOptions{3}:=0 `Überlappen:
 $aOptions{4}:=50 `Abstand:
 CT SET CHART OPTIONS(Bereich;$Chart;$aOptions)
 
  `Zeige Achsenbezeichnung
 CT SET TITLE ATTRIBUTES(Bereich;$Chart;0;2;3;"Testdatum")
 CT SET TITLE ATTRIBUTES(Bereich;$Chart;2;3;0;"Durchschnittl. Punktzahl")
 
  `Format für Bezeichnung der Achse Kategorien (Helvetica, Schwarz, Fett Kursiv, 12 Punkt)
 $Color:=CT Index to color(16)
 $Font:=CT Font number("Helvetica")
 CT SET CHART TEXT ATTRIBUTES(Bereich;$Chart;5;0;$Font;12;3;$Color)
 
  `Format für Bezeichnung der Achse Werte (Palatino, Rot, Fett Kursiv, 12 Punkt)
 $Color:=CT Index to color(4)
 $Font:=CT Font number("Palatino")
 CT SET CHART TEXT ATTRIBUTES(Bereich;$Chart;5;2;$Font;12;3;$Color)
 
  `Setze Position der Beschriftung auf unten, zentriert, horizontale Ausrichtung
 CT SET LEGEND ATTRIBUTES(Bereich;$Chart;1;0;0;0;8;0;0)
 
  `Füge Diagrammtitel oben links ein
 $Title:=CT Draw text(Bereich;1;1;350;3;"Testergebnisse Azubis in Deutschland")
 
  `Format für Diagrammtitel (Geneva, 14 Punkt, Fett, Zentriert, Blau)
 $Color:=CT Index to color(7)
 $Font:=CT Font number("Geneva")
 CT SET TEXT ATTRIBUTES(Bereich;$Title;$Font;14;1;$Color;1)
 
  `Verwende eigene Skala
 CT SET REAL SCALE(Bereich;$Chart;0;0;0;0;0;220;20;5)
  `Erhalte Größe des Bereichs zum Zentrieren
 CT GET AREA BOUNDARY(Bereich;1;$Left;$Top;$Right;$Bottom)
 
  `Passe Diagramm an die Fenstergröße minus 50 Punkt an
 CT SIZE(Bereich;$Chart;$Right-50;$Bottom-50)
 
  `Richte Diagramm horizontal aus
 CT GET BOUNDARY(Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Bereich;$Chart;$Locate;$Top2)
 
  `Richte Titel horizontal aus
 CT GET BOUNDARY(Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Bereich;$Title;$Locate;$Top2)
 
  `Bewege Diagramm 10 Punkt nach unten
 CT GET BOUNDARY(Bereich;$Chart;$Left;$Top;$Right;$Bottom)
 CT MOVE(Bereich;$Chart;$Left;$Top+10)
 
  `Setze um Diagramm und Titel graues Rechteck
 $Rect:=CT Draw rectangle(Bereich;$Left-2;$Top2-2;$Right+2;$Bottom+2+10;0)
 CT SET FILL ATTRIBUTES(Bereich;$Rect;3;CT Index to color(13))
 CT SET LINE ATTRIBUTES(Bereich;$Rect;3;CT Index to color(15);1)
 
  `Richte alle Objekte vertikal aus
 CT GET AREA BOUNDARY(Bereich;1;$Left;$Top;$Right;$Bottom)
 CT GET BOUNDARY(Bereich;-1;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Bottom-$Top)-($Bottom2-$Top2))/2
 CT MOVE(Bereich;-1;$Left2;$Locate)
 
  `Setze Rechteck in den Hintergrund
 CT SELECT(Bereich;-1;0) `Alles abwählen
 CT SELECT(Bereich;$Rect;1) `Wähle Rechteck
 CT DO COMMAND(Bereich;24002) `Setze in Hintergrund
 CT SELECT(Bereich;-1;0) `Alles abwählen
 
  `Alle Objekte abwählen
 CT SELECT(Bereich;-1;0)

Nehmen wir an, Sie möchten wissen, wie der Produktumsatz Ihrer Firma im Vergleich zu anderen Firmen Ihrer Branche aussieht. Sie speichern den täglichen Umsatz jeder Firma in einer 4th Dimension Datenbank. In der Beispieldatenbank wurden die Umsätze im Monatsdurchschnitt gespeichert.

Das folgende Diagramm vergleicht den Wert der Firma Müller Schuhe mit dem Durchschnitt der Branche. Die Daten dafür wurden direkt, also ohne zusätzliche Bearbeitung aus der Datenbank entnommen.

Die Methode DIAGRAMM UMSATZ erstellt ein Diagramm mit den Werten der Felder direkt aus der Datenbank. Sind in der Datenbank bereits die Durchschnittswerte berechnet, müssen Sie keine weiteren Berechnungen durchführen. Haben Sie dagegen nur den jeweiligen Tageswert gespeichert, müssen Sie erst den monatlichen Durchschnitt ausrechnen, diesen in einem Array speichern und das Diagramm mit der Funktion CT Chart arrays erstellen.

Ein Beispiel für ein Diagramm mit Array finden Sie im vorigen Abschnitt.

Die Methode DIAGRAMM UMSATZ gilt für bereits in der Datenbank berechnete Durchschnittswerte:

  `Methode: DIAGRAMM UMSATZ
  `Kategorien: Monate des Jahres
  `Reihen: Leistung der Firma bzw. der Branche
  `Werte: Durchschnittl. Umsatz
 
 C_LONGINT($Left;$Top;$Right;$Bottom)
 C_LONGINT($Left2;$Top2;$Right2;$Bottom2)
 C_LONGINT($Area;$Chart;$Title;$Locate;$Font;$Color)
 
  `Erstelle Auswahl der Datensätze für das Diagramm
 ALL RECORDS([Umsatzberichte])
 ORDER BY([Umsatzberichte];[Umsatzberichte]Monat;>)
 
  `Oberflächenelemente ausblenden
 CT SET DISPLAY(Bereich;1;0) `Menüleiste ausblenden
 CT SET DISPLAY(Bereich;2;0) `Diagrammwerkzeuge ausblenden
 CT SET DISPLAY(Bereich;3;0) `Objektwerkzeuge ausblenden
 CT SET DISPLAY(Bereich;6;0) `Rollbalken ausblenden
 CT SET DISPLAY(Bereich;9;0) `Lineal ausblenden
 
  `Erstelle 3D Liniendiagramm
 $Chart:=CT Chart data(Bereich;101;2;1;1;Table(->[Umsatzberichte]);2;1;3)
 
  `Lege Skala fest
 CT SET REAL SCALE(Bereich;$Chart;0;0;0;0;5;20;5;1)
 
  `Drehe Diagramm in beiden Richtungen um 0 Grad
 CT SET 3D VIEW(Bereich;$Chart;0;0)
 
  `Setze Füllfarbe für alle Rechtecke im Gitter
 CT SET CHART FILL ATTRIBUTES(Bereich;$Chart;1;1;5;CT Index to color(15))
 
  `Setze Füllfarbe für Reihen(Grün, Rot)
 CT SET CHART FILL ATTRIBUTES(Bereich;$Chart;8;100;3;CT Index to color(10))
 CT SET CHART FILL ATTRIBUTES(Bereich;$Chart;8;200;3;CT Index to color(4))
 
  `Setze Linienstärke und -farbe für Reihen (Grün, Rot, 4 Punkt)
 CT SET CHART LINE ATTRIBUTES(Bereich;$Chart;8;100;3;CT Index to color(10);4)
 CT SET CHART LINE ATTRIBUTES(Bereich;$Chart;8;200;3;CT Index to color(4);4)
 
  `Setze Texteigenschaften für Achsenbezeichnung (Palatino, Fett Kursiv, 12 Punkt)
 $Font:=CT Font number("Palatino")
 $Color:=CT Index to color(16) `Schwarz
 CT SET CHART TEXT ATTRIBUTES(Bereich;$Chart;5;0;$Font;12;3;$Color)
 $Color:=CT Index to color(10) `Grün
 CT SET CHART TEXT ATTRIBUTES(Bereich;$Chart;5;2;$Font;12;3;$Color)
 
  `Zeige Beschriftung der Achsen
 CT SET LABEL ATTRIBUTES(Bereich;$Chart;2;3;0;"Euro ##")
 CT SET LABEL ATTRIBUTES(Bereich;$Chart;0;3;3;"##/##/##")
 CT SET LABEL ATTRIBUTES(Bereich;$Chart;1;0;0;"") `Diese Bezeichnungen ausblenden
 
  `Füge Bezeichnung für Kategorie- und Werteachse hinzu
 CT SET TITLE ATTRIBUTES(Bereich;$Chart;0;3;0;"Datum")
 CT SET TITLE ATTRIBUTES(Bereich;$Chart;2;2;3;"durchschnittl. Lagerpreis")
 
  `Setze Position der Legende(oben zentriert, horizontal)
 CT SET LEGEND ATTRIBUTES(Bereich;$Chart;1;0;0;0;7;0;0)
 
  `Füge links oben Diagrammtitel hinzu
 $Title:=CT Draw text(Bereich;1;1;350;3;"Leistung: Firma vs Branche")
 
  `Format des Diagrammtitels (Palatino, 14 Punkt, Fett, Zentriert, Blau)
 $Color:=CT Index to color(7)
 $Font:=CT Font number("Palatino")
 CT SET TEXT ATTRIBUTES(Bereich;$Title;$Font;14;1;$Color;1)
 
  `Erhalte Größe des Bereichs zum Zentrieren
 CT GET AREA BOUNDARY(Bereich;1;$Left;$Top;$Right;$Bottom)
 
  `Passe Diagramm an die Fenstergröße minus 50 Punkt an
 CT SIZE(Bereich;$Chart;$Right-50;$Bottom-50)
 
  `Zentriere Diagramm
 CT GET BOUNDARY(Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Bereich;$Chart;$Locate;$Top2)

 
EIGENSCHAFTEN 

Produkt: 4D Chart
Thema: Einleitung

 
SIEHE AUCH 

Diagramme aus Arrays (Beispiele)